//
//  UIBarButtonItem+Extension.swift
//  仿微博
//
//  Created by RaoBo on 2018/12/9.
//  Copyright © 2018年 RB. All rights reserved.
//

import UIKit
//抽取UIBarButtonItem分类
extension UIBarButtonItem {
    
    
    /// 创建 UIBarButtonItem
    ///
    /// - Parameters:
    ///   - rb_title: 标题
    ///   - fontSize: 字体 默认 16 号
    ///   - target: target
    ///   - action: action
    ///   -isBack : 默认false 如果是true 就设置箭头
    convenience init(rb_title:String, fontSize:CGFloat = 16, target:AnyObject?, action:Selector, isBack:Bool = false) {
        let btn: UIButton = UIButton.hm_textButton(withTitle: rb_title, fontSize: fontSize, normalColor: UIColor.darkGray, highlight: UIColor.orange);
        
        //返回按钮
        //添加返回箭头
        if isBack {
            let imageName = "back"
            btn.setImage(UIImage(named: imageName), for: UIControlState(rawValue: 0)) //默认
            btn.setImage(UIImage(named: imageName + "_highted"), for: .highlighted)
            
            btn.sizeToFit()
        }
        
        //监听事件
        btn.addTarget(target, action: action, for: .touchUpInside)

        //self.init 实例化 遍历构造函数
        self.init(customView:btn)
    }
}

//MARK: - 技巧
//1.查看一个方法在那些地方被调用
//选中方法,右键 Find  Call Hierarchy

//2.扩展方法
//扩展方法,swift比OC要好, 以前写了一个方法,但是随着开发的深入以前的某个方法，要进行扩展,添加一个参数就行了,其他地方还调用了。。要是OC 直接改就炸了
//Swift 可以直接添加参数,注意要设置默认值，swift中设置默认值后。在调用方法的时候,这个参数是可以直接忽略的。
//不会影响以前的方法了,这个👌 
